/**
 * @description: 弹窗分页控件
 *
 * @author Yangcl
 * @date 2018年6月28日 下午17:37:40
 * @version 1.0.0.1
 */
var dialogPage = {
		
		dialogId :null,  // 弹框主id 
		tbodyId : null , // 表格ID
		url : null , // 列表页请求地址
		data : new Object(), // 搜索条件对应的对象
		pageSize : 10,    // 每页显示数量
		
		init : function(dialogId , tbodyId , url , data_ , pageSize){
			dialogPage.dialogId = dialogId; 
			dialogPage.tbodyId = tbodyId;
			dialogPage.url = url;
			if(data_ != null){
				dialogPage.data = data_;
			}
			dialogPage.data.pageSize = pageSize;
			dialogPage.data.startIndex = 1; 
			
			dialogPage.pageSize = pageSize;
			$("#" + dialogPage.dialogId).show();  
			return dialogPage;
		},
		
		loadDialogPage : function(){
			if(dialogPage.data.startIndex != 1){
				dialogPage.data.startIndex = (dialogPage.data.startIndex-1) * dialogPage.pageSize;  // 配合cn.cecook.scrm.base.BaseDto的getStartIndex()方法
			}
			$("#" + dialogPage.tbodyId).find("tr").remove();
			var e = JSON.parse(dialogPage.syncAjax("post", dialogPage.getPath() + dialogPage.url , dialogPage.data , false)); 
			if(e.status == "200"){
				if(e.data.length == 0){
					$("#" + dialogPage.tbodyId).append('<tr><td colspan="3" style="text-align:center">没有查询到可以显示的数据</td></tr>'); 
				}else{
					drawDialog(e.data);        // 页面回调该方法
					dialogPage.tableFooter(e); 
				}
			}else{
				$("#" + dialogPage.tbodyId).append('<tr><td colspan="3" style="text-align:center">没有查询到可以显示的数据</td></tr>'); 
			}
		},
		
		/*
		 * 如果要兼容此插件需要添加如下字段：
			pageInfo.getPages();  // 共**页
			pageInfo.isIsFirstPage();  // 是否是第一页
			pageInfo.isIsLastPage(); // 是否是最后一页
			pageInfo.getPrePage(); // 上一页
			pageInfo.getNextPage(); // 下一页
		*/
		tableFooter : function(e){
			$("#table-footer").children().remove();
			var html = '<span class="bm_tiao">共' + e.recordsTotal + '条</span> <span class="bm_ye">' + e.pages + '页</span>';
			
			if(e.isFirstPage && e.isLastPage){
				html += '<span>上一页</span> <span>下一页</span>';
				$("#table-footer").append(html);
				return;
			}
			
			if(e.isFirstPage){
				html += '<span>上一页</span> <a href="javascript:void(0);" class="next" onclick="dialogPage.dialogPaging(\'' + e.nextPage + '\')">下一页</a>';
			}else if(e.isLastPage){
				html += '<a href="javascript:void(0);" class="prev" onclick="dialogPage.dialogPaging(\'' + e.prePage + '\')">上一页</a> <span>下一页</span>';
			}else{
				html += '<a href="javascript:void(0);" class="prev" onclick="dialogPage.dialogPaging(\'' + e.prePage + '\')">上一页</a> '
				html += '<a href="javascript:void(0);" class="next" onclick="dialogPage.dialogPaging(\'' + e.nextPage + '\')">下一页</a>';
			}
			html +='<span>前往</span> <input type="text" value="" class="text"> <span>页</span>';
			
			$("#table-footer").append(html);
		},
		
		// 上一页和下一页触发事件
		dialogPaging : function(pn){
			dialogPage.data.pageSize = dialogPage.pageSize;
			dialogPage.data.startIndex = pn;
			dialogPage.loadDialogPage();
		},
		
		/**
		 * 传入一个对象数组进行搜索。
		 * var arr = new Array();
		 * var o = Object();
		 * o.name = "aemName";     // DTO接收参数的字段名称，驼峰模式
		 * o.value = "who's your daddy";
		 * arr.push(o);
		 */
		search : function(arr){
			dialogPage.data.pageSize = dialogPage.pageSize;
			dialogPage.data.startIndex = 1;
			for(var i = 0; i < arr.length; i ++){
				dialogPage.data[arr[i].name] =arr[i].value;
			}
			dialogPage.loadDialogPage();
		},
		
		closeDialog : function(){
			$("#" + dialogPage.dialogId).hide();
		},
		
		getPath : function(){ 
			/*var parse = aemInfoOperate.parseUrl(window.location.href);  
			var path = parse.protocol + '://' + parse.host + ':' + parse.port;
			if("scrm_sps" == parse.segments[0]){
				path +=  '/' + parse.segments[0];
			}*/
			return window.parent.servicePath;
		},
		
		/**
		 * 发送ajax请求
		 * 
		 * type_ : post or get
		 * url_ : url 
		 * data_ : data_
		 * async_ : sync type ,true or false
		 */
		syncAjax : function(type_, url_, data_  , async_) {
			var msg_ = null;
			$.ajax({
					dataType : "text",
					type : type_,
					url : url_,
					data : data_,
					async : async_, 
					success : function(msg) {
							msg_ = msg;
					},
					error : function(msg) {
							msg_ = msg;
					}
			});
			return msg_;
		},
		
		parseUrl : function(url) {
	        var a =  document.createElement('a');
	        a.href = url;
	        return {
	            source: url,
	            protocol: a.protocol.replace(':',''),
	            host: a.hostname,
	            port: a.port,
	            query: a.search,
	            params: (function(){
	                var ret = {},
	                    seg = a.search.replace(/^\?/,'').split('&'),
	                    len = seg.length, i = 0, s;
	                for (;i<len;i++) {
	                    if (!seg[i]) { continue; }
	                    s = seg[i].split('=');
	                    ret[s[0]] = s[1];
	                }
	                return ret;
	            })(),
	            file: (a.pathname.match(/\/([^\/?#]+)$/i) || [,''])[1],
	            hash: a.hash.replace('#',''),
	            path: a.pathname.replace(/^([^\/])/,'/$1'),
	            relative: (a.href.match(/tps?:\/\/[^\/]+(.+)/) || [,''])[1],
	            segments: a.pathname.replace(/^\//,'').split('/')
	        };
	    }
}




















